1. Technical Field
This invention relates to systems suitable for use in computer networks undergoing the transition from IPv4 to IPv6. Particularly but not only to a resolver system that assists a node in an IPv6 network to select an address for connectivity with a node in an IPv4 network when both DSTM and NAT-PT or similar transition mechanisms are available.
2. Related Art
A variety of transition mechanisms are proposed for migrating IP (Internet Protocol) networks from IPv4 to IPv6, including encapsulation or tunnelling systems such as DSTM (Dual Stack Transition Mechanism) and translation systems such as NAT-PT (Network Address Translation-Protocol Translation), SIIT (Stateless IP/ICMP Translator), BIS (Bump-in-the-Stack), BIA (Bump-in-the-API). DSTM allows a node in an IPv6 network to communicate with a node in an IPv4 network by allocating the IPv6 node a temporary IPv4 address. NAT-PT enables translation of IPv4 addresses and packets into equivalent IPv6 addresses and packets, and vice versa. Management of IP addresses is generally carried out by DNS (Domain Name System) servers. All have been described in documents published by the IETF (Internet Engineering Task Force).
A growing number of Internet nodes contain dual stack applications that are capable of packet communication with other nodes using both IPv4 and IPv6. Each node also contains a resolver that obtains one or more IP addresses for a remote node when required by a local application. The resolver generally determines a remote address by way of a request transmitted through one or more DNS servers, being an A request for a record containing an IPv4 address or an AAAA request for a record containing an IPv6 address. An A6 request might also be used in relation to IPv6 addresses although AAAA requests are more likely to be deployed in practice. The application will usually ask for both kinds of address, and the DNS response along with capabilities of the local node generally determines which address will be used. However, current methods for selection of the address do not always provide the most efficient connectivity been the nodes.
For example, an application in an IPv6 node requests both IPv4 and IPv6 addresses of a target IPv4 node through the local resolver and DNS. If the target is bounded from the source by both NAT-PT and DSTM, then the resolver may list both an IPv6 version of the target native IPv4 address, produced by translation, and the actual IPv4 address returned for activation of DSTM. The source node or application may not have a system for selecting from the list other than simply to choose the first address that is presented or to follow a default algorithm. If the first address is the IPv6 version then connectivity between the source and the target will be established using the translation mechanism. If the first address is the actual IPv4 address then connectivity will be set up with DSTM.
Translation mechanisms are “best effort” but may result in loss of service specific information. Encapsulation mechanisms are generally preferred because native connectivity is possible. In the example above, the IPv6 node will communicate with the IPv4 node using a mechanism determined arbitrarily by whichever DNS response is presented first to the application. The most suitable mechanism is not generally determined before a connection between the nodes is set up.